#ifndef VECTOR_H
#define VECTOR_H

#include <iostream>
#include <cmath>

class Vector;

#include "matrix.h"

class Vector {
	public:
		Vector(const unsigned int& = 1);
		Vector(const Vector&);
		~Vector();
		
		double innerProduct(const Vector &) const;
		Matrix outterProduct(const Vector &) const;
		Vector scalarProduct(const double &) const;
		double length() const;
		Vector normalize() const;

		unsigned int getRow() const;

		void print();
		
		Matrix toMatrixColumn(void) const;
		
		double& operator[](unsigned int) const;
		Vector operator-();
		Vector& operator=(const Vector&);
		
	private:
		unsigned int row;
		double* data;
};

	Vector operator+(const Vector&, const Vector&);
	Vector operator-(const Vector&, const Vector&);

#endif
	